﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace UnliQ.Service.Contracts
{
    public class EventDTO
    {
        public int Id { get; set; }

        public string Name { get; set; }

        public string Description { get; set; }

        public string Room { get; set; }

        public int PersonInCharge { get; set; }

        public short MaximumSubscriber { get; set; }

        public TimeSpan TimeTriggered { get; set; }

        public bool Private { get; set; }

        public DateTime CreatedDate { get; set; }

        public int UserCreated { get; set; }

        public DateTime UpdatedDate { get; set; }

        public bool Active { get; set; }

        public EventDateDTO EventDateDTO { get; set; }

        public EventTriggerDTO EventTriggerDTO { get; set; }
    }

    public class EventDateDTO
    {
        public int Id { get; set; }

        public int EventId { get; set; }

        public int EventRecurringId { get; set; }

        public DateTime SubscribeStartDate { get; set; }

        public DateTime SubscribeEndDate { get; set; }

        public DateTime EventStartDate { get; set; }

        public DateTime EventEndDate { get; set; }

        public DateTime CreatedDate { get; set; }

        public int UserCreated { get; set; }

        public DateTime UpdatedDate { get; set; }

        public bool Active { get; set; }

        public EventRecurringDTO EventRecurringDTO { get; set; }                
    }

    public class EventDateSequenceDTO
    {
        public int Id { get; set; }

        public int EventDateId { get; set; }

        public DateTime SubscribeStartDate { get; set; }

        public DateTime SubscribeEndDate { get; set; }

        public DateTime EventStartDate { get; set; }

        public DateTime EventEndDate { get; set; }

        public DateTime CreatedDate { get; set; }
    }

    public class EventRecurringDTO
    {
        public int Id { get; set; }

        public int RecurringId { get; set; }

        public string Value { get; set; }

        public DateTime CreatedDate { get; set; }

        public int UserCreated { get; set; }

        public DateTime UpdatedDate { get; set; }

        public bool Active { get; set; }

        public RecurringDTO RecurringDTO { get; set; } 
    }

    public class RecurringDTO
    {
        public int Id { get; set; }

        public string Name { get; set; }

        public string Description { get; set; }

        public DateTime CreatedDate { get; set; }

        public int UserCreated { get; set; }

        public DateTime UpdatedDate { get; set; }

        public bool Active { get; set; }
    }

    public class EventSubscriberDTO
    {
        public int Id { get; set; }

        public int EventDateSequenceId { get; set; }

        public int UserId { get; set; }

        public DateTime CreatedDate { get; set; }

        public bool Active { get; set; }
    }

    public class EventTriggerDTO
    {
        public int Id { get; set; }

        public int EventId { get; set; }

        public int UserId { get; set; }

        public DateTime EffectiveDate { get; set; }

        public DateTime CreatedDate { get; set; }

        public DateTime UpdatedDate { get; set; }

        public int UserCreated { get; set; }

        public bool Active { get; set; }
    }
}
